package week7.kaarten;

import week7.util.Ordening;
import week7.util.Sorteerder;

public class FlexHand extends Hand {

	//-------------------------------------------Private Variables---------------------------------
	
	private Ordening<Kaart> _ordening = new KleurRangOrdening();
	
	//-------------------------------------------Queries-------------------------------------------
	
	/**
	 * Geeft de ordening die door deze FlexHand wordt gebruikt.
	 */
	public Ordening<Kaart> getOrdening() {
		return _ordening;
	}
	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public boolean lessThan(Kaart k1, Kaart k2) {
		return _ordening.lessThan(k1, k2);
	}
	
	//-------------------------------------------Commands------------------------------------------
	
	/**
	 * Verandert de <tt>Ordening</tt> die door deze FlexHand gebruikt wordt in de opgegeven <tt>ordening</tt>.
	 * Sorteert deze lijst indien dat nodig is.
	 * @param ordening De <tt>Ordening</tt> die nu door deze <tt>FlexHand</tt> moet worden gebruikt.
	 */
	public void setOrdening(Ordening<Kaart> ordening) {
		if(!_ordening.getClass().equals(ordening.getClass())) {
			_ordening = ordening;
			Sorteerder.sorteer(super.getList(), _ordening);
		}
	}
}
